As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Information handling systems often use peripheral devices including Peripheral Component Interconnect (PCI) and PCI Express (PCIe) devices for storage and/or other functionality. For example, Non-Volatile Memory Express (NVMe) storage devices may often be implemented as PCIe devices.
Information handling systems often use an array of physical storage resources (e.g., disk drives), such as a Redundant Array of Independent Disks (“RAID”), for example, for storing information. Arrays of physical storage resources typically utilize multiple disks to perform input and output operations and can be structured to provide redundancy which may increase fault tolerance. Other advantages of arrays of physical storage resources may be increased data integrity, throughput and/or capacity. In operation, one or more physical storage resources disposed in an array of physical storage resources may appear to an operating system as a single logical storage unit or “logical unit.” Implementations of physical storage resource arrays can range from a few physical storage resources disposed in a chassis, to hundreds of physical storage resources disposed in one or more separate storage enclosures.
In traditional approaches, a storage array is typically managed by a hardware storage controller that may interface with a RAID driver executing on top of an operating system of an information handling system. Because individual storage resources are controlled by a standalone storage controller, as storage resources are added and removed, the RAID may be maintained.
However, in NVMe devices, the PCIe controller is not fixed in an information handling system chipset as are traditional storage controllers. Instead, PCIe controllers exist on the NVMe devices themselves. Thus, when an NVMe storage resource is removed from an information handling system, the PCIe controller is removed and no longer visible to the operating system. Such removal may cause the operating system to unload its software RAID driver and, as a result, after a primary NVMe storage resource is removed, no more NVMe drives can be hot added and the RAID volume cannot be rebuilt.